package org.linlinjava.litemall.db.dao.app;

import org.apache.ibatis.annotations.Param;
import org.linlinjava.litemall.db.domain.*;
import org.linlinjava.litemall.db.vo.app.*;

import java.math.BigDecimal;
import java.util.List;

public interface AppAgentMapper {
    List<AgedmallAgentCombo> comboList(@Param("agentId") Integer agentId, @Param("keyword") String keyword);

    List<FinanceDetailMonthVo> getFinanceDetailMonthVo(@Param("userId") Integer userId, @Param("year") Integer year);

    List<FinanceDetailDayVo> getFinanceDetailDayVo(@Param("userId") Integer userId, @Param("year") Integer year, @Param("month") Integer month);

    void addAgentAmount(@Param("userId") Integer userId, @Param("amount") BigDecimal amount);

    List<AppAgentSettleDetail> getSettleList(@Param("userId") Integer userId, @Param("keyword") String keyword,
                                             @Param("proxyStatus") Integer proxyStatus, @Param("subOrderType") String subOrderType,
                                             @Param("year") String year, @Param("month") String month);

    List<SettleStatisticsVo> getSettleStatisticsVo(@Param("userId") Integer userId, @Param("year") Integer year);

    BigDecimal getSettleByYearMonth(@Param("userId") Integer userId, @Param("year") Integer year, @Param("month") Integer month);

    List<ProxyMoneyVo> getProxyMoneyVoList(@Param("userId") Integer userId, @Param("year") Integer year, @Param("month") Integer month, @Param("item") Byte item);

    List<ProxyOrderVo> getProxyOrderVoList(@Param("userId") Integer userId, @Param("year") Integer year, @Param("month") Integer month, @Param("item") Byte item);

    List<DeductDetailListVo> deductDetailList(@Param("userId") Integer userId);

    void addDeductAmount(@Param("userId") Integer userId, @Param("amount") BigDecimal amount);

    List<LitemallOrderGoods> getSettleOrderGoods(@Param("orderId") Integer orderId, @Param("proxyStatus") Integer proxyStatu);

    List<String> getdeliveryRole(@Param("id") Integer id);


    List<LitemallOrderGoods> getCustomerInfo(Integer parentId, Integer orderId);

    AgedmallAgent getAgentIdByStoreId(@Param("storeId") Integer storeId);

    AgedmallHospitalSendSelfLocation selectUserIsHaveHosGuider(@Param("phone")String phone);
}
